package metier.jdbc.eleve;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import metier.Fonction;
import configuration.MessageAppli;

public class FonctionJdbc {
	
	/**
	 * Regourne le libelle de la fonction pour l'id correspondant.
	 * @param Connection connexion à la base
	 * @return String LibelleFonction
	 */
	public static Fonction getFonctionById(Connection c, int id) {
		Fonction fonction = null;
		// préparer la requete sql 
		try {
			PreparedStatement ps=c.prepareStatement("SELECT * FROM fonction WHERE idFonction = " + id);

			// Res commence par 1 et pas 0.
			ResultSet res = ps.executeQuery();
			while(res.next()){
				fonction = new Fonction(
							res.getInt("idFonction"), 
							res.getString("libelleFonction"));
			}
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, MessageAppli.MSG_BDD_ERREUR_REQUETE,
					MessageAppli.MSG_BDD_TITRE_ERREUR, JOptionPane.ERROR_MESSAGE);
		}
		return fonction;
	}
	
	
	
	/**
	 * Regourne la liste des fonctions.
	 * @param Connection connexion à la base
	 * @return ArrayList de Fonction
	 */
	public static ArrayList<Fonction> getListeFonction(Connection c) {
		ArrayList<Fonction> lFonction = new ArrayList<Fonction>();
		// préparer la requete sql 
		try {
			PreparedStatement ps=c.prepareStatement("SELECT * FROM fonction");

			// Res commence par 1 et pas 0.
			ResultSet res = ps.executeQuery();
			while(res.next()){
				lFonction.add(new Fonction(res.getInt("idFonction"), res.getString("libelleFonction")));
			}
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, MessageAppli.MSG_BDD_ERREUR_REQUETE,
					MessageAppli.MSG_BDD_TITRE_ERREUR, JOptionPane.ERROR_MESSAGE);
		}
		return lFonction;
	}	
}
